<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 数组reduce方法：reduce返回累计处理的结果，经常用于求和
    // 基本语法：arr.reduce(function(上一次值, 当前值) {}, 起始值)
    // 说明：
    // 1.如果没有起始值，则上一次值以数组的第一个元素的值
    // 2.每一次循环，把返回值给作为下一次循环的上一次值
    // 3.如果有起始值，则起始值作为上一次值
    const arr = [1, 5, 8]

    // 1.没有初始值
    // const total = arr.reduce(function (prev, current) {
    //   return prev + current
    // })
    // console.log(total)  // 14

    // 上一次值    当前值    返回值（第一次循环）
    //   1         5         6
    // 上一次值    当前值    返回值（第二次循环）
    //   6         8         14


    // 2.有初始值
    // const total = arr.reduce(function (prev, current) {
    //   return prev + current
    // }, 10)
    // console.log(total)  // 24

    // 上一次值    当前值    返回值（第一次循环）
    //   10         1         11
    // 上一次值    当前值    返回值（第二次循环）
    //   11         5         16
    // 上一次值    当前值    返回值（第三次循环）
    //   16         8         24


    // 3.箭头函数的写法
    const total = arr.reduce((prev, current) => prev + current, 10)
    console.log(total)  // 24
  </script>
</body>

</html>